Computers have become highly integrated in the workforce, in the home, in mobile devices, and many other places. Computers can process massive amounts of information quickly and efficiently. Software applications designed to run on computer systems allow users to perform a wide variety of functions including business applications, schoolwork, entertainment and more. Software applications are often designed to perform specific tasks, such as word processor applications for drafting documents, or email programs for sending, receiving and organizing email.
In many cases, software applications are designed to interact with other software applications or other computer systems such as computer servers. For example, in some computing environments, it is desirable to implement terminal services. In such cases, a server (or group of servers) typically provides software applications, data and other services to a large number of user terminals. Terminal machines typically have very limited resources and rely on the terminal server(s) to supply those services. Such connections between terminal machines and terminal servers may be referred to as terminal services sessions.
In many cases, initiating a terminal services session includes a series of steps. Typically, in a scenario involving multiple terminal servers, a user indicates that they want to connect to a terminal server. One of the terminal servers receives the indication and prompts the user to input authentication credentials so that the server can search for other existing (disconnected) terminal services sessions previously created by the user. Using the authentication credentials, the terminal server creates a temporary session to search for existing sessions. Upon finding an existing session, the server sends a message to the user indicating that a disconnected session exists on another terminal server. The message typically includes a redirection indication identifying the terminal server to which the user is to connect. The user then initiates contact with the other terminal server, upon which the user is again prompted to input authentication credentials in order to login to the server.